import copy
#定义变量   数字、字符串
n1 = [1,2,3,[1,2]]
#n1 = 'nick'
print(id(n1))

#赋值  同一个对象
n2 = n1
print(id(n2))

#浅拷贝
n3 = copy.copy(n1)
print(id(n3))
n1.pop(0)
n3[-1].append(3)
print(n1)
print(n3)


#深拷贝
n4 = copy.deepcopy(n1)
print(id(n4))

a= ['1','2']
b=a[:] #不是同一对象
print(a is b)

#todo LEGB法则作用域
#局部 嵌套 全局 内置


'''
2、深度拷贝与浅度拷贝

当对象存在子对象时，浅度拷贝只会拷贝父对象，而对于子对象，则只会拷贝id；

而深度拷贝则会递归查找子对象的内容，并重新开辟空间存储一份，然后赋值给新的对象
'''
print('原')
print(id(n1[-1]))
print('浅')
print(id(n3[-1]))
print('深')
print(id(n4[-1]))

z=[1,2,3]
print(id(z))
x=copy.copy(z)
print(id(x))
c=copy.deepcopy(z)
print(id(c))
dict11={'a':5,'c':11,'b':10}
print(dict11.items())
print(dict11)
dic1={}
print(sorted(dict11.items()))

